#include <iostream>

int main()
{
    int x = 0;
    decltype(x) y = 1;           // y -> int
    decltype(x + y) z = 0;       // z -> int
    const int& i = x;
    decltype(i) j = y;           // j -> const int &
    const decltype(z) * p = &z;  // *p  -> const int, p  -> const int *
    decltype(z) * pi = &z;       // *pi -> int      , pi -> int *
    decltype(pi)* pp = &pi;      // *pp -> int *    , pp -> int * *
    return 0;
}